<template>
    <div class="app-container">
        <div class="Search">
            <!--工具条-->
            <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
                <el-form :inline="true" :model="query">
                    <el-form-item>
                        <el-input v-model="query.params.id" placeholder="主键" />
                    </el-form-item>
                    <el-form-item>
                        <el-input v-model="query.params.specificationItemId" placeholder="规格选项编号" />
                    </el-form-item>
                    <el-form-item>
                        <el-input v-model="query.params.goodsPriceId" placeholder="SKU编号" />
                    </el-form-item>
                    <el-form-item>
                        <el-input v-model="query.params.organId" placeholder="所属组织" />
                    </el-form-item>
                    <el-form-item>
                        <el-input v-model="query.params.organPath" placeholder="组织路径" />
                    </el-form-item>
                    <el-form-item>
                        <el-input v-model="query.params.createBy" placeholder="生成者" />
                    </el-form-item>
                    <el-form-item>
                        <el-date-picker v-model="query.params.createDate" type="date" placeholder="生成时间">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item>
                        <el-date-picker v-model="query.params.createDate" type="date" placeholder="生成时间">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item>
                        <el-input v-model="query.params.updateBy" placeholder="更新者" />
                    </el-form-item>
                    <el-form-item>
                        <el-date-picker v-model="query.params.updateDate" type="date" placeholder="更新间时">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item>
                        <el-date-picker v-model="query.params.updateDate" type="date" placeholder="更新间时">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item>
                        <el-input v-model="query.params.remark" placeholder="备注" />
                    </el-form-item>


                    <el-form-item>
                        <el-button type="primary" icon="el-icon-search" size="mini" @click="fetchData">查询</el-button>
                    </el-form-item>
                    <el-form-item>
                        <el-button type="success" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
                    </el-form-item>
                </el-form>
            </el-col>
        </div>

        <div class="block">
            <el-table v-loading="listLoading" :data="list" element-loading-text="Loading" border fit highlight-current-row>
                <el-table-column align="center" label="序号" width="95">
                    <template slot-scope="scope">
                        {{ scope.$index }}
                    </template>
                </el-table-column>

                <el-table-column label="主键" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.id }}
                    </template>
                </el-table-column>
                <el-table-column label="规格选项编号" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.specificationItemId }}
                    </template>
                </el-table-column>
                <el-table-column label="SKU编号" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.goodsPriceId }}
                    </template>
                </el-table-column>
                <el-table-column label="所属组织" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.organId }}
                    </template>
                </el-table-column>
                <el-table-column label="组织路径" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.organPath }}
                    </template>
                </el-table-column>
                <el-table-column label="删除标识" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.isDeleted }}
                    </template>
                </el-table-column>
                <el-table-column label="生成者" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.createBy }}
                    </template>
                </el-table-column>
                <el-table-column label="生成时间" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.createDate }}
                    </template>
                </el-table-column>
                <el-table-column label="更新者" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.updateBy }}
                    </template>
                </el-table-column>
                <el-table-column label="更新间时" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.updateDate }}
                    </template>
                </el-table-column>
                <el-table-column label="备注" width="110">
                    <template slot-scope="scope">
                        {{ scope.row.remark }}
                    </template>
                </el-table-column>

                <el-table-column align="center" prop="created_at" label="操作" width="200">
                    <template slot-scope="scope">
                        <span class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;"
                            @click="handleEdit(scope.$index, scope.row)">
                            {{ scope.row.isSet ? '保存' : "修改" }}
                        </span>
                        <span v-if="!scope.row.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;"
                            @click="handleDelete(scope.$index, scope.row)">
                            删除
                        </span>
                    </template>
                </el-table-column>
            </el-table>
        </div>

        <div class="block">
            <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
                layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
                @current-change="handleCurrentChange" />
        </div>

        <div class="block">
            <!--弹框-->
            <el-dialog :title="titleMap[dialogStatus]" :visible.sync="dialogFormVisible">
                <el-form :model="form">

                    <el-form-item v-if="addForVisible" label="角色Id">
                        <el-input v-model="form.id" auto-complete="off" />
                    </el-form-item>

                    <el-form-item label="主键">
                        <el-input v-model="form.id" placeholder="主键" auto-complete="off" />
                    </el-form-item>
                    <el-form-item label="规格选项编号">
                        <el-input v-model="form.specificationItemId" placeholder="规格选项编号" auto-complete="off" />
                    </el-form-item>
                    <el-form-item label="SKU编号">
                        <el-input v-model="form.goodsPriceId" placeholder="SKU编号" auto-complete="off" />
                    </el-form-item>
                    <el-form-item label="所属组织">
                        <el-input v-model="form.organId" placeholder="所属组织" auto-complete="off" />
                    </el-form-item>
                    <el-form-item label="组织路径">
                        <el-input v-model="form.organPath" placeholder="组织路径" auto-complete="off" />
                    </el-form-item>
                    <el-form-item label="生成者">
                        <el-input v-model="form.createBy" placeholder="生成者" auto-complete="off" />
                    </el-form-item>
                    <el-form-item label="生成时间">
                        <el-date-picker v-model="form.createDate" type="date" placeholder="生成时间">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item label="更新者">
                        <el-input v-model="form.updateBy" placeholder="更新者" auto-complete="off" />
                    </el-form-item>
                    <el-form-item label="更新间时">
                        <el-date-picker v-model="form.updateDate" type="date" placeholder="更新间时">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item label="备注">
                        <el-input v-model="form.remark" placeholder="备注" auto-complete="off" />
                    </el-form-item>
                </el-form>

                <div slot="footer" class="dialog-footer">
                    <el-button @click="dialogFormVisible = false">取 消</el-button>
                    <el-button type="primary" @click="handleEditSave">确 定</el-button>
                </div>
            </el-dialog>
        </div>
    </div>
</template>

<script>
import { getList, doDelete, doEdit } from '@/api/GoodsPriceLinkSpecificationItem/'
export default {
    data() {
        return {
            list: null,
            listLoading: true,
            total: 5,
            currentPage: 1,
            pageSize: 10,
            dialogFormVisible: false,
            addForVisible: false,
            form: {
                id: '',
                specificationItemId: '',
                goodsPriceId: '',
                organId: '',
                organPath: '',
                isDeleted: '',
                createBy: '',
                createDate: '',
                updateBy: '',
                updateDate: '',
                remark: ''
            },
            // 新增or编辑弹框标题(根据点击的新增or编辑按钮显示不同的标题)
            titleMap: {
                add: '新增',
                edit: '编辑'
            },
            // 新增和编辑弹框标题
            dialogStatus: '',
            query: {
                params: {
                    id: '',
                    specificationItemId: '',
                    goodsPriceId: '',
                    organId: '',
                    organPath: '',
                    isDeleted: '',
                    createBy: '',
                    createDate: '',
                    updateBy: '',
                    updateDate: '',
                    remark: ''
                },
                timeValue: '',
                options: [{
                    value: '1',
                    label: '黄金糕'
                }, {
                    value: '2',
                    label: '双皮奶'
                }],
                value: ''
            }
        }
    },
    created() {
        this.fetchData()
    },
    methods: {
        fetchData() {
            this.listLoading = true
            getList(this.query.params, this.currentPage, this.pageSize).then(response => {
                const data = response.data
                if (!data.entities || typeof data.successful != 'undefined') {
                    this.$message({
                        type: 'info',
                        message: data.description || getSystemErrorCode(data.status)
                    })
                }
                this.total = data.totalCount
                this.pageSize = data.pageSize
                this.currentPage = data.currentPage
                this.list = data.entities
                this.listLoading = false
            })
        },
        handleSizeChange(val) {
            this.currentPage = 1
            this.pageSize = val
        },
        handleCurrentChange(val) {
            this.currentPage = val
        },
        // 新增
        handleAdd() {
            // 显示弹框
            this.dialogFormVisible = true
            // 新增弹框标题
            this.dialogStatus = 'add'

            this.form.id = ''
            this.form.specificationItemId = ''
            this.form.goodsPriceId = ''
            this.form.organId = ''
            this.form.organPath = ''
            this.form.isDeleted = ''
            this.form.createBy = ''
            this.form.createDate = ''
            this.form.updateBy = ''
            this.form.updateDate = ''
            this.form.remark = ''
            this.addForVisible = false
        },
        // 编辑
        handleEdit(index, row) {
            console.log(index)
            console.log(row)
            this.form.id = row.id
            this.form.specificationItemId = row.specificationItemId
            this.form.goodsPriceId = row.goodsPriceId
            this.form.organId = row.organId
            this.form.organPath = row.organPath
            this.form.isDeleted = row.isDeleted
            this.form.createBy = row.createBy
            this.form.createDate = row.createDate
            this.form.updateBy = row.updateBy
            this.form.updateDate = row.updateDate
            this.form.remark = row.remark
            this.addForVisible = true
            // 显示弹框
            this.dialogFormVisible = true
            // 编辑弹框标题
            this.dialogStatus = 'edit'
        },
        handleDelete(index, row) {
            console.log(index)
            console.log(row)

            this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning',
                center: true
            }).then(() => {
                doDelete(row.id).then(response => {
                    const data = response.data
                    console.log(data)
                    if (data.status == 1) {
                        this.$message({
                            type: 'success',
                            message: '操作成功!'
                        })
                        this.fetchData();
                    } else if (data.status == 403) {
                        this.$message({
                            type: 'warning',
                            message: data.description
                        })
                    } else {
                        this.$message({
                            type: 'info',
                            message: '操作失败!'
                        })
                    }
                })
            }).catch(() => {
                this.$message({
                    type: 'info',
                    message: '已取消删除'
                })
            })
        },
        handleEditSave() {
            debugger

            doEdit(this.form).then(response => {
                debugger
                console.log(response)
                const data = response.data
                if (data.status) {
                    this.$message({
                        type: 'success',
                        message: '操作成功!'
                    })
                    this.fetchData();
                } else {
                    this.$message({
                        type: 'info',
                        message: '操作失败!'
                    })
                }
                this.listLoading = false
                this.dialogFormVisible = false
            })
        },
        handleReset() {
            this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning',
                center: true
            }).then(() => {
                this.$message({
                    type: 'success',
                    message: '删除成功!'
                })
            }).catch(() => {
                this.$message({
                    type: 'info',
                    message: '已取消删除'
                })
            })
        }
    }
}
</script>
